iOS অ্যাপ্লিকেশনে Face ID এবং Touch ID ইন্টিগ্রেশন একটি গুরুত্বপূর্ণ সিকিউরিটি ফিচার, যা ব্যবহারকারীদের জন্য নিরাপত্তা এবং সহজ ব্যবহার নিশ্চিত করে। Local Authentication Framework ব্যবহার করে iOS অ্যাপে এই বায়োমেট্রিক অথেনটিকেশন ইন্টিগ্রেশন করা হয়। এটি ব্যবহারকারীর পরিচয় নিশ্চিত করতে এবং সংবেদনশীল ডেটা বা ফিচার অ্যাক্সেস করতে নিরাপদ পদ্ধতি প্রদান করে। নিচে বিস্তারিতভাবে Face ID এবং Touch ID ইন্টিগ্রেশনের প্রক্রিয়া ব্যাখ্যা করা হলো।
Local Authentication Framework পরিচিতি
Local Authentication Framework iOS এ Face ID, Touch ID, এবং পাসকোড অথেনটিকেশন পরিচালনা করার জন্য ব্যবহৃত হয়। এটি ব্যবহার করে আমরা অ্যাপে সহজেই বায়োমেট্রিক অথেনটিকেশন যুক্ত করতে পারি।
Step-by-Step: Face ID এবং Touch ID ইন্টিগ্রেশন
নিচে Face ID এবং Touch ID ইন্টিগ্রেশন করার জন্য স্টেপ বাই স্টেপ প্রক্রিয়া দেখানো হলো:
Step 1: Local Authentication Framework ইমপোর্ট করা
প্রথমে, আপনার ViewController ফাইলে LocalAuthentication ফ্রেমওয়ার্ক ইমপোর্ট করুন:
import LocalAuthentication
Step 2: Face ID/Touch ID ইন্টিগ্রেশন মেথড তৈরি করা
এখন, আমরা একটি ফাংশন তৈরি করবো যা বায়োমেট্রিক অথেনটিকেশন পরিচালনা করবে। এই ফাংশনটি Face ID বা Touch ID এর মাধ্যমে ব্যবহারকারীর পরিচয় নিশ্চিত করবে:
func authenticateUser(completion: @escaping (Bool) -> Void) {
let context = LAContext()
var error: NSError?
// বায়োমেট্রিক অথেনটিকেশন সাপোর্ট চেক করা
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
// Localized reason যা বায়োমেট্রিক অথেনটিকেশন প্রম্পটে দেখাবে
let reason = "Authenticate to access secure features"
context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) { success, authenticationError in
DispatchQueue.main.async {
if success {
// সফল অথেনটিকেশন
print("Authentication successful!")
completion(true)
} else {
// ব্যর্থ অথেনটিকেশন
print("Authentication failed: \(String(describing: authenticationError))")
completion(false)
}
}
}
} else {
// বায়োমেট্রিক অথেনটিকেশন সাপোর্ট করা যাচ্ছে না
print("Biometric authentication not available.")
completion(false)
}
}
ব্যাখ্যা:
- LAContext:
LAContextক্লাসটি ব্যবহার করে বায়োমেট্রিক অথেনটিকেশন কনফিগার করা হয়েছে। - canEvaluatePolicy: এই মেথডটি ব্যবহার করে ডিভাইসে বায়োমেট্রিক অথেনটিকেশন সাপোর্ট করা হয় কি না, তা যাচাই করা হয়েছে।
- evaluatePolicy: বায়োমেট্রিক অথেনটিকেশন প্রম্পট দেখানোর জন্য এবং ব্যবহারকারীর পরিচয় যাচাই করার জন্য এই মেথডটি ব্যবহার করা হয়েছে।
- DispatchQueue.main.async: মূল থ্রেডে ফলাফল হ্যান্ডল করা হয়েছে, যাতে UI আপডেট করতে কোনও সমস্যা না হয়।
Step 3: Info.plist আপডেট করা
আপনার অ্যাপের Info.plist ফাইলে কিছু প্রাইভেসি পলিসি মেসেজ যোগ করা প্রয়োজন, যা Face ID বা Touch ID ব্যবহারের সময় প্রম্পটে দেখানো হবে।
১. Face ID ব্যবহারের জন্য:
- Key:
NSFaceIDUsageDescription - Value: "Your app needs access to Face ID for secure authentication."
২. Touch ID ব্যবহারের জন্য:
- Key:
NSFaceIDUsageDescription(একই Face ID এর জন্য ব্যবহৃত হয়) - Value: "Your app needs access to Touch ID for secure authentication."
এটি নিশ্চিত করবে যে Face ID বা Touch ID ব্যবহারের সময় সিস্টেম ব্যবহারকারীর অনুমতি নেবে এবং প্রম্পটে আপনার মেসেজ প্রদর্শন করবে।
Step 4: মেথড কল করা এবং ফলাফল হ্যান্ডল করা
ViewController বা অন্য কোথাও থেকে এই মেথডটি কল করতে পারেন। নিচে দেখানো হয়েছে কিভাবে এটি ব্যবহার করা যায়:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
authenticateUser { success in
if success {
// User successfully authenticated
print("User authenticated successfully. Access granted.")
// এখানে আপনার সিকিউর ফিচার বা ডেটা অ্যাক্সেস কোড লিখুন
} else {
// User failed to authenticate
print("User failed to authenticate.")
// এখানে ফেইল্ড অথেনটিকেশন হ্যান্ডল করুন (যেমন: অল্টার্ট দেখানো)
}
}
}
Additional Customization: Face ID এবং Touch ID এর মধ্যে পার্থক্য যাচাই করা
আপনি চেক করতে পারেন যে ডিভাইসটি Face ID সাপোর্ট করে কি না এবং তার ভিত্তিতে প্রম্পট কাস্টমাইজ করতে পারেন:
func authenticateUserWithCustomization(completion: @escaping (Bool) -> Void) {
let context = LAContext()
var error: NSError?
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
var authType = ""
if context.biometryType == .faceID {
authType = "Face ID"
} else if context.biometryType == .touchID {
authType = "Touch ID"
}
let reason = "Authenticate using \(authType) to access secure features"
context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) { success, authenticationError in
DispatchQueue.main.async {
if success {
completion(true)
} else {
completion(false)
}
}
}
} else {
print("Biometric authentication not available.")
completion(false)
}
}
উপসংহার
Face ID এবং Touch ID ইন্টিগ্রেশন iOS অ্যাপ্লিকেশনের নিরাপত্তা এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করে। Local Authentication Framework এর মাধ্যমে সহজেই এই ফিচারগুলো যুক্ত করা যায়। ব্যবহারকারীর পরিচয় যাচাই করা এবং অ্যাপের সংবেদনশীল ডেটা বা ফিচার অ্যাক্সেস করতে বায়োমেট্রিক অথেনটিকেশন ব্যবহার করলে অ্যাপের সুরক্ষা বৃদ্ধি পায়।
Read more